package br.com.DAO;

import java.util.ArrayList;
import java.util.List;
import com.parse.*;

import br.com.Bean.DisciplinaBean;
import br.com.Bean.UsuarioBean;

public class UsuarioDAO {

	public void salva(UsuarioBean usuarioBean){
		ParseObject user  = new ParseObject("Usuario");
		user.put("nome",usuarioBean.getNome()); 
		user.put("login", usuarioBean.getLogin().trim());
		user.put("senha", usuarioBean.getSenha());
		user.saveInBackground();
	}
	
	public void deleta(UsuarioBean usuarioBean){
		 List<ParseObject> todos = null;
		 List<DisciplinaBean> listaTodos = new ArrayList<>();
		
		ParseQuery query = new ParseQuery("Usuario");
		query.whereEqualTo("objectId", usuarioBean.getId());
		 try {
				todos = query.find();
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		 
		 if(todos != null){
			 for (ParseObject todo : todos) {
               UsuarioBean u = new UsuarioBean();
               	u.setId(todo.getObjectId());
               	todo.deleteInBackground();
               	System.out.println("DELETOU");
         //       listaTodos.add(d);
            }
		 }
	}
	
	public List<UsuarioBean> listaTodos(){
		 List<ParseObject> todos = null;
		 List<UsuarioBean> listaTodos = new ArrayList<>();
		 
		 ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Usuario");
		 try {
			todos = query.find();
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 
		 if(todos != null){
			 for (ParseObject todo : todos) {
                 UsuarioBean u = new UsuarioBean();
                 u.setId(todo.getObjectId());
                 u.setLogin(todo.getString("login"));
                 u.setNome(todo.getString("nome"));
                 u.setSenha(todo.getString("senha"));
                 
                 listaTodos.add(u);
             }
		 }
		 
		return listaTodos;
	}
	

	public UsuarioBean buscaPorUsuario(UsuarioBean usuarioBean){
		UsuarioBean usuario = new UsuarioBean();
		List<ParseObject> listaUsuario = null;
		
		ParseQuery<ParseObject> query = ParseQuery.getQuery("Usuario");
		query.whereEqualTo("login", usuarioBean.getLogin());
		query.whereEqualTo("senha", usuarioBean.getSenha());
		
		try {
			listaUsuario = query.find();
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		if(listaUsuario != null){
			for (ParseObject u : listaUsuario) {
				usuario.setId(u.getObjectId());
				usuario.setLogin(u.getString("login"));
				usuario.setNome(u.getString("nome"));
				usuario.setSenha(u.getString("senha"));
			}
		 }
		
		return usuario;
	}
	
	public UsuarioBean buscaPeloId(String id){
		UsuarioBean usuario = new UsuarioBean();
		List<ParseObject> listaUsuario = null;
		
		ParseQuery<ParseObject> query = ParseQuery.getQuery("Usuario");
		query.whereEqualTo("objectId", id);
		
		try {
			listaUsuario = query.find();
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		if(listaUsuario != null){
			for (ParseObject u : listaUsuario) {
				usuario.setId(u.getObjectId());
				usuario.setLogin(u.getString("login"));
				usuario.setNome(u.getString("nome"));
				usuario.setSenha(u.getString("senha"));
			}
		 }
		
		return usuario;
	}
	
	public UsuarioBean buscaUsuarioPorLogin(UsuarioBean usuarioBean){
		UsuarioBean usuario = new UsuarioBean();
		List<ParseObject> listaUsuario = null;
		
		ParseQuery<ParseObject> query = ParseQuery.getQuery("Usuario");
		query.whereEqualTo("login", usuarioBean.getLogin());
		//query.whereEqualTo("senha", usuarioBean.getSenha());
		
		try {
			listaUsuario = query.find();
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		if(listaUsuario != null){
			for (ParseObject u : listaUsuario) {
				usuario.setId(u.getObjectId());
				usuario.setLogin(u.getString("login"));
				usuario.setNome(u.getString("nome"));
				usuario.setSenha(u.getString("senha"));
			}
		 }
		
		return usuario;
	}
	
}
